package com.qf.blog.core.servise.impl;

import com.qf.blog.core.dao.IbaseDao;
import com.qf.blog.core.servise.IBaseService;

import java.util.List;

/**
 * @author zyt
 * @version 1.0
 */
public abstract class BaseServiceImpl <T> implements IBaseService<T> {
    // 只声明没有实例化
   protected abstract IbaseDao<T> getBaseDao();

    /**
     *添加的方法
     * @param t
     * @return
     * @throws Exception
     */
    @Override
    public boolean save(T t) throws Exception {
        return getBaseDao().insert(t)>0;  // 返回的是受影响的行数
    }

    /**
     *修改的方法
     * @param t
     * @return
     * @throws Exception
     */
    @Override
    public boolean update(T t) throws Exception {
        return getBaseDao().updeteByid(t)>0 ; // 返回的是受影响的行数
    }

    /**
     * 根据id删除的方法
     * @param id
     * @return
     * @throws Exception
     */
    @Override
    public boolean remove(Integer id) throws Exception {
        return getBaseDao().deleteByid(id)>0;
    }

    /**
     * 根据id查询
     * @param id
     * @return
     * @throws Exception
     */
    @Override
    public T byId(Integer id) throws Exception {
        return getBaseDao().selectByid(id);
    }

    /**
     * 查询的方法
     * @return
     * @throws Exception
     */
    @Override
    public List<T> list() throws Exception {
        return getBaseDao().selectList();
    }
    @Override
    public Boolean batchRemove(List<Integer> ids) throws Exception {
       return getBaseDao().batchRemove(ids) > 0;
    }
}
